package org.de.maeyer.sampler;

/**
 * @author Peter De Maeyer
 */
public interface DoubleSampler extends Sampler {
	
	void sample(double value);
	
	DoubleSampler accumulateCount();
	
	DoubleSampler accumulateLastValue();
	
	DoubleSampler accumulateExtrema();
	
	DoubleSampler accumulateVariance();
	
	DoubleSampler accumulateHistogram();
	
	/**
	 * The categories <code>[-&infin;, inclusiveLowerBound[</code> and <code>[exclusiveUpperBound, &infin;]</code> will be added automatically.
	 */
	DoubleSampler accumulateHistogram(double inclusiveLowerBound, double exclusiveUpperBound, int categoryCount);
	
	DoubleSampler accumulateHistogram(double... categoryBounds);
}